package io;

import java.io.*; 
import java.util.ArrayList;

/**
 * Kann eine Textdatei öffnen und Zeilenweise auslesen.
 * 
 * @author zenjin
 *
 */
public class TextFileReader { 

    private BufferedReader br; 

    /**
     * Öffnet die Datei unter dem Angebenen Pfad.
     * @param path 
     * 				Vollständiger Pfad der Datei.
     */
  public void openFile(String path) { 
	   try { 
		   File file = new File( path ); 
		   FileReader fr = new FileReader(file); 
		   br = new BufferedReader(fr); 
	      
	    } 
	    catch ( ArrayIndexOutOfBoundsException ex ) { 
	      //System.out.println( "Array out of bounds bei" + pfad );
	    } 
	    catch ( FileNotFoundException ex ) { 
	      //System.out.println( "Datei " + pfad + " wurde nicht gefunden."); 
	    } 
  }
  /**
   * Liefert die gesamte Datei als ArrayList zurück,
   * wobei jede Zeile ein neuer Entry ist.
   * @return Inhalt der Datei als ArrayList Zeilenweise getrennt
   */
  public ArrayList<String> readAll() {
	  ArrayList<String> data = new ArrayList<String>();
	  String dataLine = null;
	  while( true ) {	
		  dataLine = this.readNextLine();
		  if( dataLine == null ) break ;
		  data.add( dataLine );
	  }
	  return data;
  }
  /** 
   * Liefert die nächste Zeile der Datei als String,
   * solange noch Zeilen vorhanden sind.
   * @return Nächste Zeile
   */
  public String readNextLine() {
	  String line = null; 
	  try {
		  line = br.readLine();
      } catch ( IOException ex ) {
    	  //ex.printStackTrace();
      } catch ( NullPointerException ex ) {
    	  //ex.printStackTrace();
      }
      return line;
  }
 /**
  * Schließt die Datei wieder. 
  */
  public void closeFile() {
	  try {
		br.close();
	} catch ( IOException ex ) {
		ex.printStackTrace();
	}
  }
} 